#include<iostream>
using namespace std;
int n;
const int N = 2e5 + 10;
int f[N];
int ret;
int main()
{
	cin >> n;
	//取max别忘了得设置初始为-无穷
	ret = -1e9;
	for (int i = 1;i <= n;i++)
	{
		int x = 0;
		cin >> x;
		f[i] = max(f[i - 1]+x,x);//之前的最大字段和加上新的这一个数和这个数取最大值
		ret = max(ret, f[i]);
	}
	cout << ret << endl;
	return 0;
}